////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  awbglobalelements.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef AWBGLOBALELEMENTS_H
#define AWBGLOBALELEMENTS_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "globalelements.h"

#define AWBGLOBALELEMENTS_NAMESPACE_BEGIN namespace awbglobalelements {
#define AWBGLOBALELEMENTS_NAMESPACE_END }

AWBGLOBALELEMENTS_NAMESPACE_BEGIN
typedef INT32 enableFlagType;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbZoneType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class awbZoneType
{
    Rectangle = 0,
    Triangle  = 1,
    CCT       = 2
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerCtrlType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class awbTriggerCtrlType
{
    TriggerCtrlLuxIdx             = 0,
    TriggerCtrlCCT                = 1,
    TriggerCtrlValidStatsCntRatio = 2,
    TriggerCtrlAgwRg              = 3,
    TriggerCtrlAgwBg              = 4,
    TriggerCtrlZoneGroup0Rg       = 5,
    TriggerCtrlZoneGroup0Bg       = 6,
    TriggerCtrlZoneGroup0CntRatio = 7,
    TriggerCtrlZoneGroup1CntRatio = 8,
    TriggerCtrlZoneGroup2CntRatio = 9,
    TriggerCtrlZoneGroup3CntRatio = 10,
    TriggerCtrlZoneCntRatioValid0 = 11,
    TriggerCtrlZoneCntRatio01     = 12,
    TriggerCtrlZoneCntRatio02     = 13,
    TriggerCtrlZoneCntRatio03     = 14,
    TriggerCtrlZoneCntRatio12     = 15,
    TriggerCtrlZoneCntRatio13     = 16,
    TriggerCtrlZoneCntRatio23     = 17,
    TriggerCtrlFlashSensitivity   = 18,
    TriggerCtrlZoneGroup0CCT      = 19,
    TriggerCtrlTypeMax            = 20
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSAConfidenceCmptType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class awbSAConfidenceCmptType
{
    SAConfidenceMultiply    = 0,
    SAConfidenceWeightedAvg = 1,
    SAConfidenceMinimum     = 2,
    SAConfidenceMaximum     = 3,
    SAConfidenceTypeMax     = 4
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSATargetCtrlType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class awbSATargetCtrlType
{
    SATargetFixedPoint = 0,
    SATargetGAAGWPoint = 1,
    SATargetGAZone0    = 2,
    SATargetGAZone1    = 3,
    SATargetGAZone2    = 4,
    SATargetTypeMAX    = 5
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// moduleIDType
///
/// Tuning Level:  never_tune
/// Description:   Define module ID, sub module ID
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct moduleIDType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// moduleID
    ///
    /// Range:         [1,1000]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    INT32 moduleID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// subModuleID
    ///
    /// Range:         [1,1000]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    INT32 subModuleID;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// triggerPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct triggerPointType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// start
    ///
    /// Range:         [-100.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT start;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// end
    ///
    /// Range:         [-100.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT end;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbRGBDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbRGBDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// red
    ///
    /// Range:         [0.0,9999.9]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT red;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// green
    ///
    /// Range:         [0.0,9999.9]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT green;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// blue
    ///
    /// Range:         [0.0,9999.9]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT blue;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbPointDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbPointDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// rg
    ///
    /// Range:         [0.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT rg;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// bg
    ///
    /// Range:         [0.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT bg;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbZoneDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbZoneDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// vertex - Array
    /// Length:        3
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbPointDataType vertex[3];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbFloatDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbFloatDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// data
    ///
    /// Range:         [0.0,9999.9]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataRGBType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataRGBType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbRGBDataType   triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataZoneType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataZoneType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData
    ///
    /// Description:   Rectable: use 2 vertices, Triangle: use 3 vertices
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbZoneDataType  triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataPointType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbPointDataType triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataFloatType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataFloatType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbFloatDataType triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbZoneConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbZoneConfigType
{
    CHAR*              Description;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// groupID
    ///
    /// Description:   Zone group ID. Each zone group can consist of several zones
    /// Range:         [0,10]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    INT32              groupID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// zoneType
    ///
    /// Description:   Options of zone Type: Rectangle, Triangle
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbZoneType        zoneType;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerLevel
    ///
    /// Description:   Number of triggering dimension
    /// Range:         [1,10]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    INT32              triggerLevel;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerCtrlType - Array
    /// Length:        3
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbTriggerCtrlType triggerCtrlType[3];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbZoneDefineType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbZoneDefineType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// zoneConfigData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbZoneConfigType       zoneConfigData;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType        triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                  triggerDataCount;
    UINT32                  triggerDataID;
    awbTriggerDataZoneType* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataZoneLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataZoneLevel2Type
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType        triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                  triggerDataCount;
    UINT32                  triggerDataID;
    awbTriggerDataZoneType* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbTriggerDataZoneLevel1Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbTriggerDataZoneLevel1Type
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType              triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   Rectable: use 2 vertices, Triangle: use 3 vertices
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                        triggerDataCount;
    UINT32                        triggerDataID;
    awbTriggerDataZoneLevel2Type* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbZoneMLCType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbZoneMLCType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// zoneConfigData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbZoneConfigType             zoneConfigData;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType              triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                        triggerDataCount;
    UINT32                        triggerDataID;
    awbTriggerDataZoneLevel1Type* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSAConfidenceConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSAConfidenceConfigType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// attribute
    ///
    /// Description:   weight value when multiply for confidence compute type is selected
    /// Range:         [0.0,100.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT              attribute;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerType - Array
    /// Default Value: TriggerCtrlLuxIdx
    /// Length:        2
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbTriggerCtrlType triggerType[2];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSAConfidenceLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSAConfidenceLevel2Type
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType         triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   2nd triggering level
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                   triggerDataCount;
    UINT32                   triggerDataID;
    awbTriggerDataFloatType* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSAConfidenceDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSAConfidenceDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// commonData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbSAConfidenceConfigType  commonData;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType           triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   1st triggering level
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                     triggerDataCount;
    UINT32                     triggerDataID;
    awbSAConfidenceLevel2Type* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSATargetConfigType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSATargetConfigType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// attribute
    ///
    /// Description:   Target point control type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbSATargetCtrlType attribute;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerType - Array
    ///
    /// Description:   Trigger control type
    /// Default Value: TriggerCtrlLuxIdx
    /// Length:        2
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbTriggerCtrlType  triggerType[2];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSATargetLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSATargetLevel2Type
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType         triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   2nd triggering level
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                   triggerDataCount;
    UINT32                   triggerDataID;
    awbTriggerDataPointType* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbSATargetDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbSATargetDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// commonData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    awbSATargetConfigType  commonData;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType       triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   1st triggering level
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                 triggerDataCount;
    UINT32                 triggerDataID;
    awbSATargetLevel2Type* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// CbCrPointDataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct CbCrPointDataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Cb
    ///
    /// Range:         [0.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT Cb;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Cr
    ///
    /// Range:         [0.0,15000.0]
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT Cr;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// CbCrTriggerDataPointType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct CbCrTriggerDataPointType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType  triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    CbCrPointDataType triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbCbCrLevel2Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct awbCbCrLevel2Type
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerPt
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    triggerPointType          triggerPt;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// triggerData - Array
    ///
    /// Description:   2nd triggering level
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                    triggerDataCount;
    UINT32                    triggerDataID;
    CbCrTriggerDataPointType* triggerData;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// awbglobalelementsClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class awbglobalelementsClass
{
public:

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load moduleIDType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadmoduleIDType(
        ParameterFileSymbolTableEntry* entry,
        moduleIDType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load triggerPointType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadtriggerPointType(
        ParameterFileSymbolTableEntry* entry,
        triggerPointType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbRGBDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbRGBDataType(
        ParameterFileSymbolTableEntry* entry,
        awbRGBDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbPointDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbPointDataType(
        ParameterFileSymbolTableEntry* entry,
        awbPointDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbZoneDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbZoneDataType(
        ParameterFileSymbolTableEntry* entry,
        awbZoneDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbFloatDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbFloatDataType(
        ParameterFileSymbolTableEntry* entry,
        awbFloatDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataRGBType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataRGBType(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataRGBType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataZoneType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataZoneType(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataZoneType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataPointType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataPointType(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataPointType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataFloatType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataFloatType(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataFloatType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbZoneConfigType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbZoneConfigType(
        ParameterFileSymbolTableEntry* entry,
        awbZoneConfigType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbZoneDefineType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbZoneDefineType(
        ParameterFileSymbolTableEntry* entry,
        awbZoneDefineType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataZoneLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataZoneLevel2Type(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataZoneLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbTriggerDataZoneLevel1Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbTriggerDataZoneLevel1Type(
        ParameterFileSymbolTableEntry* entry,
        awbTriggerDataZoneLevel1Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbZoneMLCType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbZoneMLCType(
        ParameterFileSymbolTableEntry* entry,
        awbZoneMLCType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSAConfidenceConfigType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSAConfidenceConfigType(
        ParameterFileSymbolTableEntry* entry,
        awbSAConfidenceConfigType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSAConfidenceLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSAConfidenceLevel2Type(
        ParameterFileSymbolTableEntry* entry,
        awbSAConfidenceLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSAConfidenceDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSAConfidenceDataType(
        ParameterFileSymbolTableEntry* entry,
        awbSAConfidenceDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSATargetConfigType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSATargetConfigType(
        ParameterFileSymbolTableEntry* entry,
        awbSATargetConfigType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSATargetLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSATargetLevel2Type(
        ParameterFileSymbolTableEntry* entry,
        awbSATargetLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbSATargetDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbSATargetDataType(
        ParameterFileSymbolTableEntry* entry,
        awbSATargetDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load CbCrPointDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadCbCrPointDataType(
        ParameterFileSymbolTableEntry* entry,
        CbCrPointDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load CbCrTriggerDataPointType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadCbCrTriggerDataPointType(
        ParameterFileSymbolTableEntry* entry,
        CbCrTriggerDataPointType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load awbCbCrLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL LoadawbCbCrLevel2Type(
        ParameterFileSymbolTableEntry* entry,
        awbCbCrLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbZoneConfigType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbZoneConfigType(
        awbZoneConfigType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbZoneDefineType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbZoneDefineType(
        awbZoneDefineType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbTriggerDataZoneLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbTriggerDataZoneLevel2Type(
        awbTriggerDataZoneLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbTriggerDataZoneLevel1Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbTriggerDataZoneLevel1Type(
        awbTriggerDataZoneLevel1Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbZoneMLCType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbZoneMLCType(
        awbZoneMLCType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbSAConfidenceLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbSAConfidenceLevel2Type(
        awbSAConfidenceLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbSAConfidenceDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbSAConfidenceDataType(
        awbSAConfidenceDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbSATargetLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbSATargetLevel2Type(
        awbSATargetLevel2Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbSATargetDataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbSATargetDataType(
        awbSATargetDataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload awbCbCrLevel2Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void UnloadawbCbCrLevel2Type(
        awbCbCrLevel2Type* structure);

}; // End class awbglobalelementsClass

AWBGLOBALELEMENTS_NAMESPACE_END
#endif // AWBGLOBALELEMENTS_H

